﻿using RockBus.ConfigurationService.Interfaces;
using RockBus.DataContracts;
using RockBus.ServiceModel;

namespace RockBus.ServiceBus
{
    public class ConfigurationServiceClientOneWay : ClientBaseEx<IConfigurationServiceOneWay>, IConfigurationServiceOneWay
    {
        public ConfigurationServiceClientOneWay(ClientBaseArgs args)
            : base(args)
        {
        }

        //public void AddOrUpdate(AddOrUpdatePublishersRequest publishersRequest, AddOrUpdateSubscribersRequest subscribersRequest)
        //{
        //    this.Contract.AddOrUpdate(publishersRequest, subscribersRequest);
        //}

        public void AddOrUpdateSubscribers(AddOrUpdateSubscribersRequest request)
        {
            this.Contract.AddOrUpdateSubscribers(request);
        }

        public void RemoveSubscribers(RemoveSubscribersRequest request)
        {
            this.Contract.RemoveSubscribers(request);
        }

        public void RemoveSubscriptions(RemoveSubscriptionsRequest request)
        {
            this.Contract.RemoveSubscriptions(request);
        }

        public void AddOrUpdatePublishers(AddOrUpdatePublishersRequest request)
        {
            this.Contract.AddOrUpdatePublishers(request);
        }

        public void RemovePublishers(RemovePublishersRequest request)
        {
            this.Contract.RemovePublishers(request);
        }

        public void RemoveReceivePorts(RemoveReceivePortsRequest request)
        {
            this.Contract.RemoveReceivePorts(request);
        }

        public void RemoveAllSubscribers(RemoveAllSubscribersRequest request)
        {
            this.Contract.RemoveAllSubscribers(request);
        }

        public void RemoveAllPublishers(RemoveAllPublishersRequest request)
        {
            this.Contract.RemoveAllPublishers(request);
        }

        public void SetInternalConfiguration(SetInternalConfigurationRequest request)
        {
            this.Contract.SetInternalConfiguration(request);
        }
    }
}